home *** CD-ROM | disk | FTP | other *** search
- CHAPTER 1 INTRODUCTION AND LEGAL TERMS 1-1
-
- Introduction
-
- D86 is a screen-oriented assembly-language debugger for the IBM-
- PC, compatibles, and several not-so-compatibles (Wang-PC, TI-PC,
- Tandy 2000, and Sanyo 55x). D86 is the finest debugger
- available, at any price under any conditions, for the following:
-
- 1. Learning 8086 assembly language.
-
- 2. Exploring the machine state of your computer (memory
- structure, registers, etc.)
-
- 3. Doing assembly-language program development using my A86
- assembler.
-
- 4. Doing any kind of debugging involving the floating-point (8087
- or 287) coprocessor.
-
- In contrast to software firms who attempt to restrict the
- distribution of their software through protection schemes, I
- encourage free distribution, and trust that those who use my
- products will pay for them. Please keep in mind the fundamental
- good spirit of free-distribution software as you endure the
- following barrage of legalities. Then evaluate the outstanding
- value that the D86 package offers you. I assure you that you
- will not be disappointed.
-
-
- Legal Terms and Conditions
-
- This package is provided to you under the following conditions:
-
- 1. You may copy this entire package, and give it to anyone who
- accepts these terms. The copies you distribute must be
- complete and unmodified. You do not have to be registered to
- distribute this package.
-
- 2. You may execute the programs in this package, in order to
- evaluate them. If you decide that any of this package is of
- use to you, you must become a registered user by sending $40
- US to:
-
- Eric Isaacson
- 416 E. University Street
- Bloomington, IN 47401
-
- For your convenience, I now accept Visa and MasterCard, by
- telephone. My number is (812)339-1811.
-
- For the convenience of users in Great Britain, I have author-
- ized the firm Shareware Marketing to collect registrations for
- me. If you register through them you MUST get the update
- disk, since most of their profit comes from the update. If
- you don't want the update right away you can ask them to give
- you a voucher good for an update in the future. We'll try to
- 1-2
-
- keep the prices about the same whether you register through me
- or through them; it's your choice. Their address is 87 High
- Street, Tonbridge, Kent TN9 1RX; telephone 0732 358125.
- They'll send me a list of registered users at the end of every
- month, and I'll send an acknowledgement to each user when I
- get the list. So if you haven't heard from me by the third
- week of the month following your registration with them,
- please let me know.
-
- Registered users may order update-diskettes (5.25 inch, double
- density) for $10 US, or $12 US if you are overseas. (In other
- words, send $50, $52 if overseas, if you want to register and
- get an update-diskette.) Once you register for this package,
- you are registered for all future versions. As long as I'm in
- business, you can get the latest version for just the update
- fee.
-
- To use D86, you must have the associated assembler, A86. A
- copy of A86 (without all of its documentation) is included in
- the D86 package. If you are using D86 to debug only programs
- written in languages other than A86, then you do not need to
- register for A86. If you are programming in A86, then you
- must register for A86. There is a $10 discount for combined
- registration of A86 and D86. Instead of $40+$40 = $80, the
- charge for both packages is $70 with no update, $80 with
- the update ($82 overseas).
-
- Indiana residents need to add sales tax. At the current rate
- of 5%, the prices for Indiana residents are $42 for one
- product, $52.50 for one product with update, $73.50 both
- products, $84 both products with update.
-
- Educational institutions and training facilities MUST be
- registered in order to use D86 in courses. Contact me for
- special terms.
-
- Companies and government agencies MUST be registered in order
- to use D86 for their work. Again, contact me for special
- terms.
-
- 3. You may not sell this package to anyone. If you distribute
- this package on a diskette, any fees you collect must be
- specified as materials/handling, and may not exceed $10 for
- the diskette.
-
- 4. You are completely responsible for determining the fitness or
- usability of this package. I will not be liable for any
- damages, of any kind, arising from any failure of any programs
- in this package to perform as expected.
- 1-3
- Overview of D86
-
- D86 is a screen-oriented program that allows you to troubleshoot
- faulty computer programs written for the IBM-PC, Wang-PC, TI-PC,
- or Sanyo computer. It "freezes" the state of your program, and
- allows you to investigate the values of registers, flags, and
- memory. You can monitor your program's execution by stepping it
- one instruction or procedure at a time; or you can start your
- program running, telling D86 to stop it when it reaches certain
- locations. D86 recognizes the symbol-table output of the A86
- assembler, creating a symbolic disassembly of your A86 program,
- and allowing you to refer to locations and variables by name.
-
- The primary design criterion for D86 is ease of use. This is
- reflected in the most notable features of D86:
-
- * You don't need to ask D86 what the values of registers and
- flags are. They are there, automatically, at a fixed location
- on the screen.
-
- * You don't need to ask D86 where in your program you are
- stopped. A disassembly is always generated, at another fixed
- location on the screen. The disassembly gives a hefty chunk of
- your program, not just the single instruction you are at. A
- cursor next to the disassembly marks the current location. The
- disassembly chunk remains fixed as you step though it, allowing
- you to follow the flow of the program much more easily. If you
- wrote the program using A86, the disassembly is symbolic,
- giving instruction operands by name, and labelling disassembly
- locations when possible.
-
- * You don't need to ask D86 what is on the machine stack. A
- display of the top elements of the stack is always generated,
- at yet another fixed location on the screen.
-
- * You can set up windows into memory, displaying memory contents
- in a variety of types. The types can even be mixed, to display
- complicated structures. The windows will stay at the same
- location until you turn them off, allowing you to watch what
- your program is doing to those memory locations.
-
- * If you have an 8087 or 287 floating-point chip, D86 will generate
- complete window of the 87 state. The values of the stack
- elements are in a readable decimal format, with suppression of
- unneccessary zeroes, and scientific notation only if necessary.
-
- * You can, at any time, enable a help-window, to guide you
- through debugger commands. You will be astounded by the
- sophistication of this help-facility, especially since other
- debuggers offer no on-line help whatsoever.
-
- * All of the above-mentioned windows, except for the last two,
- exist on the screen at the same time. You don't have to switch
- between them.
- 1-4
-
- * You can single-step your program with single keystrokes, rather
- than sequences of arcane commands. There are several flavors
- of single-step keys, clustered together on the function-keypad.
- This, combined with the automatic nature of the display, allows
- you to single-step very quickly. You feel like you are
- actually watching your program run.
-
- * Much of D86's command language is simply the A86 assembly
- language itself. You can type in any A86 instruction, to be
- executed immediately. You use this to set registers and
- variables, perform arithmetic, jump to another location, etc.
- The immediate-execution feature makes D86 the most effective
- tool available for teaching 86 architecture: the student can
- watch the effects of instructions on registers, flags, and
- memory.
-
- * You can patch programs in memory, using the full power of the
- A86 assembly language.
-
-
- Who IS That Guy?
-
- For those of you who wish to know what credentials I have for
- producing programs that meet the above claims, let me tell you
- who I am. I am an independent software consultant. I have
- worked with Intel microprocessors since the early days of the
- 8080. As an employee of Intel, I was a part of the two-man team
- that implemented the first ASM86 assembler. I am one of the
- world's leading authorities on the entire 86-family of
- microcomputers, having completed numerous major projects
- involving the 8086, and 80186, and the 80286. I have completed
- a book on the 386/387 architecture, to be published soon by
- Wiley and Sons.
-
- A86 and D86 themselves are mature, solid programs. They have
- been in existence for 3 years, running first under my own,
- proprietary operating system; then later under the Xenix
- operating system on Altos computers, used by myself and my
- clients.
-
- Although I have been unknown to the world of the IBM-PC until
- A86 and D86, I intend to change all that in the next couple of
- years. Peter Norton, watch out.
-
-
- Support Your Local Bulletin Board
-
- Bob Breedlove, a BBS Sysop in California, sent me a suggestion
- with his registration: that I do something to support Sysops,
- since they are distributing my software for me. Good point, Bob.
- Let me try this experiment (but I reserve the legal right to
- cancel this offer at any time, without notice): if anybody who
- registers wishes to support the BBS from which they obtained my
- program, they should tell me the name and phone number of the BBS
- when they register. They should also leave a message to the
- 1-5
-
- Sysop that they have done so, so the Sysop can contact me with
- his/her address. If I receive 5 registrations naming a
- particular BBS, I'll award a free registration to the Sysop-- the
- Sysop can designate who the registration is for; or (if the Sysop
- has already paid for a registration) he/she can elect to receive
- a cash refund. For each subsequent 5 registrations, I'll send
- the Sysop a cash rebate equal to one half the registration fee.
- Sorry, no bonuses for less than 5 registrations; I don't want to
- be swamped with paperwork.
-
-
- How to Get in Touch With Me
-
- For earlier versions of D86, I didn't give out my telephone
- number, because I was afraid that all my time would be chewed
- up giving telephone support. But then I attended a convention
- of shareware programmers, in which the Big Boys (Wallace,
- Button, Magee, etc.) unanimously agreed that a product needs
- telephone support to be successful. So I'll field questions from
- REGISTERED users (and you can register on the spot, with a credit
- card).
-
- So now your choices for contacting me are:
-
- 1. Phone me by voice at (812)339-1811. Have your credit card
- ready if you haven't registered yet. If you get an answering
- machine, give your card number, expiration date, name as it
- appears on the card, address, city, state, zip, phone number
- with area code, which product or products your are registering
- for, and the amount.
-
- Sorry, but my current financial condition is such that I can't
- guarantee to return everybody's long-distance calls. If you'd
- like to be SURE I'll get back to you, please invite me to call
- you back collect, or tell to charge the cost of the call to
- your credit-card.
-
- 2. Write to me. Please enclose a stamped-self-addressed envelope
- if you want a reply.
-
- 3. Leave me bulletin-board mail, on the Bloomington PC-Link
- Central bulletin board, at (812)335-7252; or Indiana On-Line,
- at (812)332-7227. I'll reply on the same board.
-
- PLEASE contact me if you find bugs in my programs; I'll fix them!
- It's very frustrating to hear about people telling each other
- about bugs, and not telling me. I still await your bug list,
- Greg Wettstein.
-
-